class A{
  void a(){
    print('A');
  }
}

class B{
  void b(){
    print('B');
  }
  void d(){
    print('BD');
  }
}

class C{
  void c(){
    print('C');
  }
  void d(){
    print('CD');
  }
}

class D extends A with B,C{}
class E = A with C,B;

void main(){
  var d = new D();
  d.a();
  d.b();
  d.c();
  var e = new E();
  d.d();
  e.d();
}
